Skip to main content

Interface ICallGateProvider<T1, T2, T3, T4, T5, T6, T7, TRet>

The backing interface for the provider ("server") half of an IPC channel. This interface is used to expose methods to other plugins via RPC, as well as to allow other plugins to subscribe to notifications from this plugin.

Assembly: Dalamud.dll
View Source
Declaration
public interface ICallGateProvider<T1, T2, T3, T4, T5, T6, T7, TRet> : ICallGateProvider

Methods

RegisterAction(Action<T1, T2, T3, T4, T5, T6, T7>)

Registers a System.Delegate for use by other plugins via RPC. This Delegate must satisfy the constraints of an System.Action type as defined by the interface, meaning they may not return a value and must have the proper number of parameters.

View Source
Declaration
void RegisterAction(Action<T1, T2, T3, T4, T5, T6, T7> action)
Parameters
TypeNameDescription
System.Action<<T1>,<T2>,<T3>,<T4>,<T5>,<T6>,<T7>>actionAction to register.

RegisterFunc(Func<T1, T2, T3, T4, T5, T6, T7, TRet>)

Registers a System.Delegate for use by other plugins via RPC. This Delegate must satisfy the constraints of a System.Func%601 type as defined by the interface, meaning its return type and parameters must match accordingly.

View Source
Declaration
void RegisterFunc(Func<T1, T2, T3, T4, T5, T6, T7, TRet> func)
Parameters
TypeNameDescription
System.Func<<T1>,<T2>,<T3>,<T4>,<T5>,<T6>,<T7>,<TRet>>funcFunc to register.

SendMessage(T1, T2, T3, T4, T5, T6, T7)

Send the given arguments to all subscribers (through Dalamud.Plugin.Ipc.Internal.CallGatePubSubBase.Subscribe(System.Delegate)) of this IPC call gate. This method is intended to be used by the provider plugin to notify all subscribers of an event or data update. The parameters passed to this method will be passed to all subscribers, with appropriate serialization for complex data types. Primitive data types will be passed as-is. The subscription actions will be called sequentially in order of registration on the <em>same thread</em> as the caller.

View Source
Declaration
void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
Parameters
TypeName
<T1>arg1
<T2>arg2
<T3>arg3
<T4>arg4
<T5>arg5
<T6>arg6
<T7>arg7